A modern data processing system such as a general purpose computer system, often includes a file management system (e.g., as part of an operating system) which allows a user to place a file (e.g., a word processing program file, and/or an image processing program file, etc.) in various directories or subdirectories (e.g. folders) and allows the user to give the file a name. Further, the file management system often allows the user to find the file by searching within a published data (e.g., announced by an application to the file management system) about a file (e.g., a file's name, and/or a date of creation, and/or a date of modification, and/or a type of file). An example of the file management system is a Finder program which operates on Macintosh computers from Apple Computer, Inc. of Cupertino, Calif. Another example of the file management system program is a Windows Explorer program which operates on the Windows operating system from Microsoft Corporation of Redmond, Wash.
Both the Finder program and the Windows Explorer program include a find command that allows the user to search for files by querying the published data. However, this search capability searches through the published data which is the same for each file, regardless of the type of file. Thus, for example, the published data for a Microsoft Word file is the same as the published data for an Adobe PhotoShop file, and the published data often includes the file name, the type of file, the date of creation, the date of last modification, the size of the file, and certain other parameters which may be maintained for the file by the file management system.
Certain application programs internally maintain data about a particular file (e.g., an internally maintained meta-data). The internally maintained meta-data may be considered meta-data because it is data about other data. The internally maintained meta-data for a particular file may include information that is used when a particular application program is executed. For example, the user may add and/or edit meta-data (e.g., through a “properties” tab, such as whether an image shows a person's likeness, etc.).
However, in existing systems, a user is not able to search for the internally maintained meta-data across a variety of different applications using one search request from the user because the internally maintained meta-data is not published to the file management system. In addition, when a shared storage system is used (e.g., a network based file system), a file management system of each of the nodes (e.g., the data processing systems) is unable to search the internally maintained meta-data of files associated with other nodes because of numerous technical challenges. These technical challenges include how to ensure that an index within each file management system is up to date when different computers connected to the shared file system access, modify, and create data (e.g., the published data and/or the internally maintained meta-data) within the shared storage system, how to prevent bottlenecking because of large data transfers of new indexes, and which node manages a master list of changes, etc.